home *** CD-ROM | disk | FTP | other *** search
/ Power CD / Power CD ATARI-Rechner Lieben.iso / APPS / PD / EULER / PROGS / RENDITE.E < prev    next >
Encoding:
Text File  |  1991-10-27  |  2.3 KB  |  85 lines

  1. .. Berechnet die Rendite eines Wertpapieres
  2.  
  3. function rendite (x)
  4. ## berechnet die Rendite von Zahlungen x zu Perioden 0,1,2,3,...
  5.     if sum(x)<0; error("Rendite negativ?"); endif;
  6.     q=polydif(x);
  7.     c=1;
  8.     repeat
  9.         cnew=c-polyval(x,c)/polyval(q,c);
  10.         if c~=cnew; break; endif;
  11.         c=cnew;
  12.     end;
  13.     return (1/cnew-1)*100;
  14. endfunction
  15.  
  16. function rendite2 (x,n)
  17. ## berechnet die Rendite von Zahlungen x zu gebrochenen Perioden n.
  18.     if sum(x)<0; error("Rendite negativ?"); endif;
  19.     k2=x*n; n2=n-1;
  20.     k2=k2[2:length(x)]; n2=n2[2:length(x)];
  21.     c=1;
  22.     repeat
  23.         cnew=c-sum(x*c^n)/sum(k2*c^n2);
  24.         if c~=cnew; break; endif;
  25.         c=cnew;
  26.     end;
  27.     return (1/cnew-1)*100;
  28. endfunction
  29.  
  30. function effzins (kurs,laufzeit,zins)
  31. ## berechnet den effektiven Zins eines Wertpapieres.
  32. ## kurs und zins in %, laufzeit in Zinsperioden.
  33. ## z.B. effzins(104,8,8.75).
  34.     si=size(kurs,laufzeit,zins); rend=zeros(si);
  35.     loop 1 to prod(si);
  36.         k=-kurs{#}|dup(zins{#},laufzeit{#})';
  37.         k[laufzeit{#}+1]=k[laufzeit{#}+1]+100;
  38.         rend{#}=rendite(k);
  39.     end;
  40.     return rend
  41. endfunction
  42.  
  43. function tilgung (darlehen,laufzeit,zins)
  44. ## berechnet die Tilgung eines Darlehens.
  45.     p=1+zins/100;
  46.     return p*(1/p-1)*darlehen/(1/p^laufzeit-1);
  47. endfunction
  48.  
  49. function darlzins (darlehen,laufzeit,tilgung)
  50. ## berechnet den Zinssatz eines Darlehens.
  51.     si=size(darlehen,laufzeit,tilgung); z=zeros(si);
  52.     loop 1 to prod(si);
  53.         k=-darlehen{#}|dup(tilgung{#},laufzeit{#})';
  54.         z{#}=rendite(k);
  55.     end;
  56.     return z
  57. endfunction
  58.  
  59. function sparzins (rate,laufzeit,endkapital)
  60. ## berechnet den effektiven Zins eines Sparvertrages.
  61.     si=size(rate,laufzeit,endkapital); z=zeros(si);
  62.     loop 1 to prod(si);
  63.         k=dup(-rate{#},laufzeit{#})'|endkapital{#};
  64.         z{#}=rendite(k);
  65.     end;
  66.     return z
  67. endfunction
  68.  
  69. function endkap (rate,laufzeit,zins)
  70. ## berechnet das Endkapital eines Sparvertrages.
  71.     p=1+zins/100;
  72.     return p*rate*(p^laufzeit-1)/(p-1);
  73. endfunction
  74.  
  75. "rendite(R) definiert."
  76. "rendite2(T,R) definiert."
  77. "effzins(W,T,Z) definiert."
  78. "tilgung(W,T,Z) definiert."
  79. "darlzins(W,T,R) definiert."
  80. "sparzins(R,T,W) definiert."
  81. "endkap(R,T,Z) definiert."
  82.  
  83. "Benutzen Sie help ... für weitere Informationen."
  84.  
  85.